/**
 * 
 */
package de.midnightdance.model.character;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import de.midnightdance.model.character.disziplin.DisziplinCHAR;

/**
 * @author Surfer
 *
 */
public class CharacterRequiemGhul extends CharacterRequiemMensch {
	//werte
	protected int 						heilwert;
	protected int 						schadensBonus;
	// Disziplinen
	protected List<DisziplinCHAR>		clansDisziplin;
	protected List<DisziplinCHAR>		clansFremdeDisziplin;
	protected List<Ritual> 	  			rituale;
	
	
	public CharacterRequiemGhul() {
		super();
		clansDisziplin 			= new ArrayList<DisziplinCHAR>();
		clansFremdeDisziplin	= new ArrayList<DisziplinCHAR>();
		rituale 				= new ArrayList<Ritual>();
	}
	
	/* (non-Javadoc)
	 * @see de.cbf.util.uuidheader.entities.UUIDHeader#takeOverEntityData(de.cbf.util.uuidheader.entities.UUIDHeader)
	 */
	@Override
	protected void takeOverEntityData(Object aOther) {
		super.takeOverEntityData(aOther);
		if (aOther instanceof CharacterRequiemGhul) {
			CharacterRequiemGhul otherGhul = (CharacterRequiemGhul) aOther;
			//listen
			clansDisziplin 			= new ArrayList<DisziplinCHAR>(otherGhul.clansDisziplin);
			clansFremdeDisziplin	= new ArrayList<DisziplinCHAR>(otherGhul.clansFremdeDisziplin);
			rituale 				= new ArrayList<Ritual>(otherGhul.rituale);
			//
			heilwert 		= otherGhul.heilwert;
			schadensBonus 	= otherGhul.schadensBonus;			
		}
	}
	
	/**
	 * @return the clansDisziplin
	 */
	public Iterator<DisziplinCHAR> getClansDisziplinIterator() {
		return clansDisziplin.iterator();
	}
	public DisziplinCHAR[] getClansDisziplinen() {
		return clansDisziplin.toArray(new DisziplinCHAR[clansDisziplin.size()]);
	}	
	public void setClansDisziplinen(DisziplinCHAR[] value) {
		clansDisziplin.clear();
		clansDisziplin.addAll(Arrays.asList(value));
	}
	public boolean addClansDisziplin(DisziplinCHAR value){
		return clansDisziplin.add(value);
	}
	public boolean removeClansDisziplin(DisziplinCHAR value){
		return clansDisziplin.remove(value);
	}
	/**
	 * @return the clansFremdeDisziplin
	 */
	public Iterator<DisziplinCHAR> getClansfremdeDisziplinIterator() {
		return clansFremdeDisziplin.iterator();
	}
	public DisziplinCHAR[] getClansFremdeDisziplinen() {
		return clansFremdeDisziplin.toArray(new DisziplinCHAR[clansFremdeDisziplin.size()]);
	}	
	public void setClansFremdeDisziplinen(DisziplinCHAR[] value) {
		clansFremdeDisziplin.clear();
		clansFremdeDisziplin.addAll(Arrays.asList(value));
	}
	public boolean addClansFremdeDisziplin(DisziplinCHAR value){
		return clansFremdeDisziplin.add(value);
	}
	public boolean removeClansFremdeDisziplin(DisziplinCHAR value){
		return clansFremdeDisziplin.remove(value);
	}
	/**
	 * @return the rituale
	 */
	public Iterator<Ritual> getRitualeIterator() {
		return rituale.iterator();
	}
	public Ritual[] getRituale() {
		return rituale.toArray(new Ritual[rituale.size()]);
	}	
	public void setRituale(Ritual[] value) {
		rituale.clear();
		rituale.addAll(Arrays.asList(value));
	}
	public boolean addRitual(Ritual value){
		return rituale.add(value);
	}
	public boolean removeRitual(Ritual value){
		return rituale.remove(value);
	}
	
	/**
	 * @return the heilwert
	 */
	public int getHeilwert() {
		return heilwert;
	}
	/**
	 * @param heilwert the heilwert to set
	 */
	public void setHeilwert(int heilwert) {
		this.heilwert = heilwert;
	}
	/**
	 * @return the schadensBonus
	 */
	public int getSchadensBonus() {
		return schadensBonus;
	}
	/**
	 * @param schadensBonus the schadensBonus to set
	 */
	public void setSchadensBonus(int schadensBonus) {
		this.schadensBonus = schadensBonus;
	}
	
	
	
	
	
	
	
}
